import os
from difflib import SequenceMatcher

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()

def find_similar_files(directory, similarity_threshold=0.9):
    # 获取所有文件名（不包括路径）
    files = [f for f in os.listdir(directory) if os.path.isfile(os.path.join(directory, f))]
    
    # 用于存储相似文件名的集合
    similar_files = []
    
    # 比较所有文件名对
    for i in range(len(files)):
        for j in range(i + 1, len(files)):
            file_name_i = os.path.splitext(files[i])[0]  # 去掉扩展名
            file_name_j = os.path.splitext(files[j])[0]  # 去掉扩展名
            
            # 比较文件名相似度
            similarity = similar(file_name_i, file_name_j)
            if similarity >= similarity_threshold:
                similar_files.append((files[i], files[j], similarity))
                
    # 输出相似文件名
    for pair in similar_files:
        print(f"{pair[0]} 和 {pair[1]} 的相似度为: {pair[2]:.2%}")

if __name__ == "__main__":
    directory_path = input("请输入要扫描的目录路径: ")
    if os.path.isdir(directory_path):
        find_similar_files(directory_path)
    else:
        print("提供的路径不是一个有效的目录")
